Önemli Notlar
Load.Install fonksiyonunu kullanarak indirin ve yükleyin.Load.Install fonksiyonunu kullanarak indirin ve/veya yükleyin.# Gerekli paketlerin yüklenmesi.
Load.Install(c("rstudioapi", "readxl", "plyr", "dplyr", "tidyr", "stringr", "stringi", "Hmisc", "reshape2", "scales", "ggplot2", "xtable", "latex2exp", "forecast", "WDI", "fpp2", "fpp3", "datasets", "quantmod", "ggseas", "slider"))R kodu bölümünde istediğiniz sayıyı girebilirsiniz.set.seed(1234)WDI R paketini kullanarak veri indirip yüklemeye çalışalım.WDIsearch ve WDI.
WDIsearch fonksiyonu ile indirip yüklemek istediğimiz veriyi belirleyebiliriz.WDI fonksiyonu ile belirlediğimiz veriyi indirip yükleyebiliriz.WDIsearch(string = "gdp.*current.*LCU", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "NY.GDP.MKTP.CN" GDP (current LCU) datasını kullanacağız.
#> indicator
#> [1,] "NV.SRV.DISC.CN"
#> [2,] "NY.GDP.DISC.CN"
#> [3,] "NY.GDP.MKTP.CN"
#> [4,] "NY.GDP.MKTP.CN.AD"
#> [5,] "NY.GDP.PCAP.CN"
#> [6,] "NYGDPMKTPSACN"
#> name
#> [1,] "Discrepancy in GDP, value added (current LCU)"
#> [2,] "Discrepancy in expenditure estimate of GDP (current LCU)"
#> [3,] "GDP (current LCU)"
#> [4,] "GDP: linked series (current LCU)"
#> [5,] "GDP per capita (current LCU)"
#> [6,] "GDP,current LCU,millions,seas. adj.,"
data <- WDI(country = c("TR"), indicator = c("NY.GDP.MKTP.CN"), start = 1960, end = 2019, extra = FALSE) ## Bir önceki kodda belirlediğimiz indikatör ismini ve ülke kısaltmasını kullanıyoruz. Datanın başlangıç ve bitiş tarihlerini de ayrı ayrı belirtiyoruz.
data ## Datanın yapısını inceleyelim.data <- data[, c("year", "NY.GDP.MKTP.CN")] ## İstediğimiz değişkenleri belirtiyoruz.
colnames(data) <- c("Year", "GDP") ## Değişkenlere yeni isimler veriyoruz.
data$Date <- as.Date(paste(data$Year, "1", "1", sep = "-")) ## Date adlı yeni bir değişken oluşturuyoruz.
data <- data[, c("Date", "Year", "GDP")] ## Değişkenleri sütun olarak sıralıyoruz.
data <- data[order(data$Date, data$Year, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.
# Grafik
temp <- data
variable <- "GDP"
variable.name <- "Nominal GSYH (TL)"
ggplot(temp) +
geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
geom_point(aes(x = Date, y = temp[ , variable], colour = "Variable"), size = 1) +
xlab("Zaman (Yıl)") + ylab(variable.name) +
# labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
scale_x_date(date_breaks = "5 year", date_labels = "%Y") +
scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
theme_grey() +
theme(legend.position = "top")data.
data fonksiyonu ile istediğimiz veriyi direkt olarak R’ın içine yükleyebiliriz.fpp2 R paketinden “Avustralya Elektrik Üretimi (milyar kWh)” verisini yükleyelim.
fpp2 R paketinden yüklemek istediğimiz verinin ismi qauselec’tir.data(qauselec) ## Datayı yüklüyoruz.
data <- qauselec ## Yüklediğimiz datayı "data" ismi ile kaydediyoruz.
head(data, 20) ## Datanın yapısını inceleyelim.
#> Qtr1 Qtr2 Qtr3 Qtr4
#> 1956 3.923 4.436 4.806 4.418
#> 1957 4.339 4.811 5.259 4.735
#> 1958 4.608 5.196 5.609 4.977
#> 1959 4.883 5.744 6.035 5.514
#> 1960 5.387 6.211 6.659 5.983
data <- data.frame(Date = as.Date(time(data)), Elec.Prod = as.matrix(data), stringsAsFactors = FALSE) ## Yüklediğimiz data time series formatında olduğu için bu datayı data.frame formatına çeviriyoruz.
data ## Datanın yapısını inceleyelim.data <- data[order(data$Date, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.
# Grafik
temp <- data
variable <- "Elec.Prod"
variable.name <- "Avustralya Elektrik Üretimi (milyar kWh)"
ggplot(temp) +
geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
xlab("Zaman (Yıl)") + ylab(variable.name) +
# labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
scale_x_date(date_breaks = "5 year", date_labels = "%Y") +
scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
theme_grey() +
theme(legend.position = "top")read_excel.
read_excel fonksiyonu ile veriyi direkt olarak R’ın içine yükleyebiliriz.file.path <- "clean-water.xlsx" ## Data dosyasının ismi ve uzantısı.
# Ham data yüklenmesi
data <- read_excel(path = file.path, sheet = 3, range = cell_limits(c(1, 1), c(NA, NA)), col_names = TRUE, col_types = "text") ## Yüklediğimiz datayı tibble formatında kaydediyoruz.
data <- as.data.frame(data, stringsAsFactors = FALSE) ## Datayı data.frame formatına çeviriyoruz.
data ## Datanın yapısını inceleyelim.colnames(data)[1] <- "Month" ## İlk sütun ismini değiştiriyoruz.
data$Month <- 1:12 ## İlk sütundaki hücrelere ay ismi yerine rakam veriyoruz.
# Datanın dönüştürülmesi.
data <- reshape2::melt(data, id.vars = c("Month"), variable_name = "value")
# Bazı değişiklikler.
data <- dplyr::rename(data, Year = variable)
data <- dplyr::rename(data, Clean.Water = value)
data$Year <- as.numeric(as.character(data$Year))
data$Clean.Water <- as.numeric(data$Clean.Water)
data$Date <- as.Date(paste(data$Year, data$Month, "1", sep = "-")) ## Date adlı tarihi belirten yeni bir değişken oluşturuyoruz.
data <- data[, c("Date", "Year", "Month", "Clean.Water")] ## İstediğimiz değişkenleri belirtiyoruz.
data <- data[data$Year != 2019, ] ## 2019 datasının son gözleminde bir problem olduğu için 2019 yılını siliyoruz.
data <- data[order(data$Date, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.
# Grafik
temp <- data
variable <- "Clean.Water"
variable.name <- "İstanbul'a Verilen Temiz Su Miktarı (Ton)"
ggplot(temp) +
geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
xlab("Zaman (Ay)") + ylab(variable.name) +
# labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
theme_grey() +
theme(legend.position = "top")read_excel.
read.csv fonksiyonu ile veriyi direkt olarak R’ın içine yükleyebiliriz.file.path <- "dam_occupancy.csv" ## Data dosyasının ismi ve uzantısı.
# Ham data yüklenmesi
data <- read.csv(file = file.path, header = TRUE, sep = ",", dec = ".", colClasses = "character", comment.char = "", na.string = "") ## Datanın yüklenmesi.
data ## Datanın yapısını inceleyelim.colnames(data) <- c("Date", "Occupancy.Rate", "Reserved.Water") ## Sütun isimlerinin değiştirilmesi.
data$Occupancy.Rate <- as.numeric(data$Occupancy.Rate) ## Numerik kategori olarak değiştirildi.
data$Reserved.Water <- as.numeric(data$Reserved.Water) ## Numerik kategori olarak değiştirildi.
data$Date <- as.Date(data$Date, tz = "UTC", format = "%Y-%m-%d") ## Date kategori olarak değiştirildi.
data <- data[order(data$Date, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.
# Grafik
temp <- data
variable <- "Occupancy.Rate"
variable.name <- "İstanbul Barajları Doluluk Oranı"
ggplot(temp) +
geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
xlab("Zaman (Gün)") + ylab(variable.name) +
# labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
theme_grey() +
theme(legend.position = "top")quantmod R paketini kullanarak veri indirip yüklemeye çalışalım.loadSymbols.
loadSymbols fonksiyonu ile istediğimiz veriyi direkt olarak R’ın içine yükleyebiliriz.loadSymbols(Symbols = "GOOG", periodicity = "daily", return.class = "data.frame") ## Yahoo Finance uzerinden buldugumuz sembolu (GOOG) kullanarak ve datanın frekansını seçerek datayı indirip yükleyebiliriz. İndirdiğimiz datanın ismi sembol ismi ile aynı olacaktır.
#> 'getSymbols' currently uses auto.assign=TRUE by default, but will
#> use auto.assign=FALSE in 0.5-0. You will still be able to use
#> 'loadSymbols' to automatically load data. getOption("getSymbols.env")
#> and getOption("getSymbols.auto.assign") will still be checked for
#> alternate defaults.
#>
#> This message is shown once per session and may be disabled by setting
#> options("getSymbols.warning4.0"=FALSE). See ?getSymbols for details.
#> [1] "GOOG"
GOOG ## Datanın yapısını inceleyelim.
data <- data.frame(Date = rownames(GOOG), Google = GOOG$GOOG.Close, stringsAsFactors = FALSE) ## Kapanış fiyatları seçiliyor ve sütun ismi olarak Google veriliyor.
data$Date <- as.Date(data$Date) ## Date kategori olarak değiştiriliyor.
data <- data[order(data$Date, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.
# Grafik
temp <- data
variable <- "Google"
variable.name <- "Google Hisse Senedi Fiyatı"
ggplot(temp) +
geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
xlab("Zaman (Gün)") + ylab(latex2exp::TeX(variable.name)) +
# labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
theme_grey() +
theme(legend.position = "top")WDIsearch(string = "gdp.*current.*LCU", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "NY.GDP.MKTP.CN" GDP (current LCU) datasını kullanacağız.
#> indicator
#> [1,] "NV.SRV.DISC.CN"
#> [2,] "NY.GDP.DISC.CN"
#> [3,] "NY.GDP.MKTP.CN"
#> [4,] "NY.GDP.MKTP.CN.AD"
#> [5,] "NY.GDP.PCAP.CN"
#> [6,] "NYGDPMKTPSACN"
#> name
#> [1,] "Discrepancy in GDP, value added (current LCU)"
#> [2,] "Discrepancy in expenditure estimate of GDP (current LCU)"
#> [3,] "GDP (current LCU)"
#> [4,] "GDP: linked series (current LCU)"
#> [5,] "GDP per capita (current LCU)"
#> [6,] "GDP,current LCU,millions,seas. adj.,"
WDIsearch(string = "gdp.*deflator", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "NY.GDP.DEFL.ZS" GDP deflator (base year varies by country) datasını kullanacağız. 2009 baz yılı kullanılıyor.
#> indicator
#> [1,] "NY.GDP.DEFL.87.ZG"
#> [2,] "NY.GDP.DEFL.KD.ZG"
#> [3,] "NY.GDP.DEFL.KD.ZG.AD"
#> [4,] "NY.GDP.DEFL.ZS"
#> [5,] "NY.GDP.DEFL.ZS.87"
#> [6,] "NY.GDP.DEFL.ZS.AD"
#> [7,] "NY.GDP.MKTP.CD.XD"
#> [8,] "NY.GDP.MKTP.CN.XD"
#> [9,] "NY.GDP.MKTP.IN"
#> [10,] "NY.GDP.MKTP.XD"
#> [11,] "NY.GDP.MKTP.XU.E"
#> name
#> [1,] "Inflation, GDP deflator (annual %)"
#> [2,] "Inflation, GDP deflator (annual %)"
#> [3,] "Inflation, GDP deflator: linked series (annual %)"
#> [4,] "GDP deflator (base year varies by country)"
#> [5,] "GDP deflator (1987 = 100)"
#> [6,] "GDP deflator: linked series (base year varies by country)"
#> [7,] "GDP deflator, index (2000=100; US$ series)"
#> [8,] "GDP deflator, period average (LCU index 2000=100)"
#> [9,] "GDP Deflator"
#> [10,] "GDP deflator (1987=100,Index)"
#> [11,] "GDP deflator, end period (base year varies by country)"
data <- WDI(country = c("TR"), indicator = c("NY.GDP.MKTP.CN", "NY.GDP.DEFL.ZS"), start = 1960, end = 2019, extra = FALSE) ## Bir önceki kodda belirlediğimiz indikatör isimlerini ve ülke kısaltmasını kullanıyoruz. Datanın başlangıç ve bitiş tarihlerini de ayrı ayrı belirtiyoruz.
data ## Datanın yapısını inceleyelim.data <- data[, c("year", "NY.GDP.MKTP.CN", "NY.GDP.DEFL.ZS")] ## İstediğimiz değişkenleri belirtiyoruz.
colnames(data) <- c("Year", "GDP", "GDP.Deflator") ## Değişkenlere yeni isimler veriyoruz.
data$Date <- as.Date(paste(data$Year, "1", "1", sep = "-")) ## Date adlı yeni bir değişken oluşturuyoruz.
data <- data[, c("Date", "Year", "GDP", "GDP.Deflator")] ## Değişkenleri sütun olarak sıralıyoruz.
data <- data[order(data$Date, data$Year, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.
# Enflasyon ayarlaması.
data[data$GDP.Deflator == 100, "Year"] ## Datanin baz yılı belirleniyor. 2009 yılı.
#> [1] 2009
data$R.GDP <- (data$GDP / data$GDP.Deflator) * 100 ## Enflasyon ayarlaması yapılıyor.
data ## Datanın yapısını inceleyelim.
# Grafik
temp <- data
variable <- "R.GDP"
variable.name <- "Real GSYH (2009 TL)"
ggplot(temp) +
geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
geom_point(aes(x = Date, y = temp[ , variable], colour = "Variable"), size = 1) +
xlab("Zaman (Yıl)") + ylab(variable.name) +
# labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
scale_x_date(date_breaks = "5 year", date_labels = "%Y") +
scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
theme_grey() +
theme(legend.position = "top")WDIsearch(string = "gdp.*constant.*LCU", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "NY.GDP.MKTP.KN" GDP (constant LCU) datasını kullanacağız. 2009 baz yılı kullanılıyor.
#> indicator
#> [1,] "NV.SRV.DISC.KN"
#> [2,] "NY.GDP.DISC.KN"
#> [3,] "NY.GDP.FCST.KN.87"
#> [4,] "NY.GDP.MKTP.KN"
#> [5,] "NY.GDP.MKTP.KN.87"
#> [6,] "NY.GDP.PCAP.KN"
#> [7,] "NYGDPMKTPSAKN"
#> name
#> [1,] "Discrepancy in GDP, value added (constant LCU)"
#> [2,] "Discrepancy in expenditure estimate of GDP (constant LCU)"
#> [3,] "GDP at factor cost (constant 1987 LCU)"
#> [4,] "GDP (constant LCU)"
#> [5,] "GDP at market prices (constant 1987 LCU)"
#> [6,] "GDP per capita (constant LCU)"
#> [7,] "GDP,constant 2010 LCU,millions,seas. adj.,"
WDIsearch(string = "SP.POP.TOTL", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "SP.POP.TOTL" Total Population datasını kullanacağız.
#> indicator name
#> [1,] "SP.POP.TOTL.ICP" "SP.POP.TOTL.ICP:Population"
#> [2,] "SP.POP.TOTL.ICP.ZS" "SP.POP.TOTL.ICP.ZS:Population shares (World=100)"
data <- WDI(country = c("TR"), indicator = c("NY.GDP.MKTP.KN", "SP.POP.TOTL"), start = 1960, end = 2019, extra = FALSE) ## Bir önceki kodda belirlediğimiz indikatör isimlerini ve ülke kısaltmasını kullanıyoruz. Datanın başlangıç ve bitiş tarihlerini de ayrı ayrı belirtiyoruz.
data ## Datanın yapısını inceleyelim.
data <- data[, c("year", "NY.GDP.MKTP.KN", "SP.POP.TOTL")] ## İstediğimiz değişkenleri belirtiyoruz.
colnames(data) <- c("Year", "R.GDP", "Population") ## Değişkenlere yeni isimler veriyoruz.
data$Date <- as.Date(paste(data$Year, "1", "1", sep = "-")) ## Date adlı yeni bir değişken oluşturuyoruz.
data <- data[, c("Date", "Year", "R.GDP", "Population")] ## Değişkenleri sütun olarak sıralıyoruz.
data <- data[order(data$Date, data$Year, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.
# Nüfus ayarlaması.
data$R.GDP.PCAP <- data$R.GDP / data$Population ## Nüfus ayarlaması yapılıyor.
data ## Datanın yapısını inceleyelim.
# Grafik
temp <- data
variable <- "R.GDP.PCAP"
variable.name <- "Kişi Başı Reel GSYH (2009 TL)"
ggplot(temp) +
geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
geom_point(aes(x = Date, y = temp[ , variable], colour = "Variable"), size = 1) +
xlab("Zaman (Yıl)") + ylab(variable.name) +
# labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
scale_x_date(date_breaks = "5 year", date_labels = "%Y") +
scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
theme_grey() +
theme(legend.position = "top")WDIsearch(string = "gdp.*capita.*constant.*LCU", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "NY.GDP.PCAP.KN" GDP per capita (constant LCU) datasını kullanacağız. 2009 baz yılı kullanılıyor.
#> indicator name
#> "NY.GDP.PCAP.KN" "GDP per capita (constant LCU)"
WDIsearch(string = "exchange.*rate.*LCU", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "PA.NUS.FCRF" Official exchange rate (LCU per US$, end period) datasını kullanacağız.
#> indicator
#> [1,] "DPANUSLCU"
#> [2,] "DPANUSSPB"
#> [3,] "DPANUSSPF"
#> [4,] "PA.NUS"
#> [5,] "PA.NUS.FCRF"
#> [6,] "PE.NUS.FCAE"
#> name
#> [1,] "Official exchange rate, LCU per USD, period average"
#> [2,] "Exchange rate, new LCU per USD extended backward, period average"
#> [3,] "Exchange rate, old LCU per USD extended forward, period average"
#> [4,] "Exchange rate (LCU per US$, period average)"
#> [5,] "Official exchange rate (LCU per US$, period average)"
#> [6,] "Official exchange rate (LCU per US$, end period)"
data <- WDI(country = c("TR"), indicator = c("NY.GDP.PCAP.KN", "PA.NUS.FCRF"), start = 2000, end = 2019, extra = FALSE) ## Bir önceki kodda belirlediğimiz indikatör isimlerini ve ülke kısaltmasını kullanıyoruz. Datanın başlangıç ve bitiş tarihlerini de ayrı ayrı belirtiyoruz.
data ## Datanın yapısını inceleyelim.
data <- data[, c("year", "NY.GDP.PCAP.KN", "PA.NUS.FCRF")] ## İstediğimiz değişkenleri belirtiyoruz.
colnames(data) <- c("Year", "R.GDP.PCAP", "Exchange.Rate") ## Değişkenlere yeni isimler veriyoruz.
data$Date <- as.Date(paste(data$Year, "1", "1", sep = "-")) ## Date adlı yeni bir değişken oluşturuyoruz.
data <- data[, c("Date", "Year", "R.GDP.PCAP", "Exchange.Rate")] ## Değişkenleri sütun olarak sıralıyoruz.
data <- data[order(data$Date, data$Year, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.
# Nüfus ayarlaması.
data$R.GDP.PCAP.USD <- data$R.GDP.PCAP / data$Exchange.Rate ## Nüfus ayarlaması yapılıyor.
data ## Datanın yapısını inceleyelim.
# Grafik
temp <- data
variable <- "R.GDP.PCAP.USD"
variable.name <- "Kişi Başı Reel GSYH (2009 USD)"
ggplot(temp) +
geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
geom_point(aes(x = Date, y = temp[ , variable], colour = "Variable"), size = 1) +
xlab("Zaman (Yıl)") + ylab(variable.name) +
# labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
scale_x_date(date_breaks = "5 year", date_labels = "%Y") +
scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
theme_grey() +
theme(legend.position = "top")WDIsearch(string = "gdp.*capita.*constant", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "NY.GDP.PCAP.KD" GDP per capita (constant 2010 US$) datasını kullanacağız. 2010 baz yılı kullanılıyor.
#> indicator
#> [1,] "6.0.GDPpc_constant"
#> [2,] "NY.GDP.PCAP.KD"
#> [3,] "NY.GDP.PCAP.KN"
#> [4,] "NY.GDP.PCAP.PP.KD"
#> [5,] "NY.GDP.PCAP.PP.KD.87"
#> name
#> [1,] "GDP per capita, PPP (constant 2011 international $) "
#> [2,] "GDP per capita (constant 2010 US$)"
#> [3,] "GDP per capita (constant LCU)"
#> [4,] "GDP per capita, PPP (constant 2017 international $)"
#> [5,] "GDP per capita, PPP (constant 1987 international $)"
data <- WDI(country = c("TR"), indicator = c("NY.GDP.PCAP.KD"), start = 1960, end = 2019, extra = FALSE) ## Bir önceki kodda belirlediğimiz indikatör ismini ve ülke kısaltmasını kullanıyoruz. Datanın başlangıç ve bitiş tarihlerini de ayrı ayrı belirtiyoruz.
data ## Datanın yapısını inceleyelim.
data <- data[, c("year", "NY.GDP.PCAP.KD")] ## İstediğimiz değişkenleri belirtiyoruz.
colnames(data) <- c("Year", "R.GDP.PCAP") ## Değişkenlere yeni isimler veriyoruz.
data$Date <- as.Date(paste(data$Year, "1", "1", sep = "-")) ## Date adlı yeni bir değişken oluşturuyoruz.
data <- data[, c("Date", "Year", "R.GDP.PCAP")] ## Değişkenleri sütun olarak sıralıyoruz.
data <- data[order(data$Date, data$Year, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.
# Büyüme oranı hesaplaniyor.
temp <- data ## Aşağıdaki dögünün işlemesi için datayı farklı bir isimle kaydedip onunla işlem yapıyoruz.
for (i in 3:ncol(temp)) {
x <- temp[ , i]
growth.x <- 100 * (diff(x, lag = 1, differences = 1) / x[-length(x)])
growth.x <- round(growth.x, 3)
x <- as.data.frame(c(NA, growth.x), stringsAsFactors = FALSE)
colnames(x) <- paste0("Gr.", colnames(temp)[i]) ## Büyüme değerlerini "Gr." ile ifade ediyoruz.
temp <- cbind(temp, x)
}
data <- temp ## Tekrar aynı ismi kullanmaya başlıyoruz.
data ## Datanın yapısını inceleyelim.
# Grafik
temp <- data
variable <- "Gr.R.GDP.PCAP"
variable.name <- "Kişi Başı Reel GSYH Büyüme Oranı (USD)"
ggplot(temp) +
geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
geom_point(aes(x = Date, y = temp[ , variable], colour = "Variable"), size = 1) +
xlab("Zaman (Yıl)") + ylab(variable.name) +
# labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
scale_x_date(date_breaks = "5 year", date_labels = "%Y") +
geom_hline(aes(yintercept = 0), show.legend = FALSE, linetype = 1, colour = 2, size = 0.25) +
scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
theme_grey() +
theme(legend.position = "top")
#> Warning: Removed 1 row(s) containing missing values (geom_path).
#> Warning: Removed 1 rows containing missing values (geom_point).WDIsearch(string = "consumer.*price.*index", field = "name", short = TRUE, cache = NULL) ## Olası seriler ve kodları. Biz "FP.CPI.TOTL" Consumer price index (2010 = 100) datasını kullanacağız. 2010 baz yılı kullanılıyor.
#> indicator name
#> [1,] "2.01.03.01.prcpbase" "Consumer price index base year"
#> [2,] "EP.CPI.1996" "Consumer Price Index in 42 cities base 1996"
#> [3,] "EP.CPI.2002" "Consumer Price Index in 45 cities base 2002"
#> [4,] "EP.CPI.2007" "Consumer Price Index in 66 cities base 2007"
#> [5,] "EP.CPI.2012" "Consumer Price Index in 82 cities base 2012"
#> [6,] "FP.CPI.TOTL" "Consumer price index (2010 = 100)"
#> [7,] "GFDD.OE.01" "Consumer price index (2010=100, December)"
#> [8,] "GFDD.OE.02" "Consumer price index (2010=100, average)"
data <- WDI(country = c("TR"), indicator = "FP.CPI.TOTL", start = 1960, end = 2019, extra = FALSE) ## Bir önceki kodda belirlediğimiz indikatör ismini ve ülke kısaltmasını kullanıyoruz. Datanın başlangıç ve bitiş tarihlerini de ayrı ayrı belirtiyoruz.
data ## Datanın yapısını inceleyelim.
data <- data[, c("year", "FP.CPI.TOTL")] ## İstediğimiz değişkenleri belirtiyoruz.
colnames(data) <- c("Year", "CPI.2010") ## Değişkenlere yeni isimler veriyoruz.
data$Date <- as.Date(paste(data$Year, "1", "1", sep = "-")) ## Date adlı yeni bir değişken oluşturuyoruz.
data <- data[, c("Date", "Year", "CPI.2010")] ## Değişkenleri sütun olarak sıralıyoruz.
data <- data[order(data$Date, data$Year, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.
# Yeni bir baz yılına göre (2019 Baz Yılı) indeksi tekrar hesaplıyoruz.
data$CPI.2019 <- (data$CPI.2010/data[data$Year == 2019, "CPI.2010"]) * 100
data ## Datanın yapısını inceleyelim.
# Grafik
temp <- data
variable <- "CPI.2019"
variable.name <- "Tüketici Fiyatları İndeksi (2019 Baz Yılı)"
ggplot(temp) +
geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
geom_point(aes(x = Date, y = temp[ , variable], colour = "Variable"), size = 1) +
xlab("Zaman (Yıl)") + ylab(variable.name) +
# labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
scale_x_date(date_breaks = "5 year", date_labels = "%Y") +
geom_hline(aes(yintercept = 0), show.legend = FALSE, linetype = 1, colour = 2, size = 0.25) +
scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
theme_grey() +
theme(legend.position = "top")loadSymbols(Symbols = "TRY=X", periodicity = "daily", return.class = "data.frame") ## Datanın indirilmesi.
#> Warning: TRY=X contains missing values. Some functions will not work if objects
#> contain missing values in the middle of the series. Consider using na.omit(),
#> na.approx(), na.fill(), etc to remove or replace them.
#> [1] "TRY=X"
data <- data.frame(Date = rownames(`TRY=X`), Close = `TRY=X`$`TRY=X.Close`, stringsAsFactors = FALSE) ## Datanın data.frame olarak kaydedilmesi.
data$Date <- as.Date(data$Date) ## Date kategori olarak değiştirildi.
data <- data[order(data$Date, decreasing = FALSE, na.last = FALSE), ] ## Datayı tarihe göre sıralıyoruz.
rownames(data) <- 1:nrow(data) ## Satır sayılarını sıralıyoruz.
data ## Datanın yapısını inceleyelim.
# Logaritmik transformasyon.
data$Ln.Close <- log(data$Close)
# Box-Cox transformasyonu.
value <- data$Close
## Box-cox transformasyonu ile bulunan lambda değerine göre ham veri değiştiriliyor: Eğer lambda = 1 ise transformasyona gerek yok, eğer lambda == 0 ise ln(x), ve eğer lambda farklı bir değer ise (x^lambda - 1)/lambda.
s.lambda <- forecast::BoxCox.lambda(value, method = c("loglik"), lower = -2, upper = 2) ## Box-cox transformasyonu sonucunda bulunan lambda değeri. method = c("guerrero") kriteri de kullanılabilir. Genelde kullanılan alt limit -2 ve üst limit ise 2'dir.
if(s.lambda == 1) { ## Lambda = 1.
value.boxcox <- value
message("Box-Cox transformasyonu sonucu: Transformasyona gerek yok.")
} else if(s.lambda == 0) { ## Lambda = 0.
value.boxcox <- log(value)
message("Box-Cox transformasyonu sonucu: Logaritmik Transformasyon yapıldı.")
} else { ## Lambda farklı bir değer ise.
value.boxcox <- (value^s.lambda - 1)/s.lambda
message(paste0("Box-Cox transformasyonu sonucu: λ = ", round(s.lambda, 2), " kullanılarak Box-Cox transformasyonu yapıldı."))
}
#> Box-Cox transformasyonu sonucu: λ = -0.7 kullanılarak Box-Cox transformasyonu yapıldı.
data$Box.Cox.Close <- value.boxcox
data ## Datanın yapısını inceleyelim.
# Düzey Formu: Grafik
temp <- data
variable <- "Close"
variable.name <- "Döviz Kuru (TL/USD)"
ggplot(temp) +
geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
xlab("Zaman (Gün)") + ylab(variable.name) +
# labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
theme_grey() +
theme(legend.position = "top")
# Logaritmik Form: Grafik
temp <- data
variable <- "Ln.Close"
y.lab <- "Ln Döviz Kuru (TL/USD)"
variable.name <- "Logaritmik Transformasyon ile Döviz Kuru (TL/USD)"
ggplot(temp) +
geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
xlab("Zaman (Gün)") + ylab(y.lab) +
# labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
theme_grey() +
theme(legend.position = "top")
# Box-Cox Transformasyonu: Grafik
temp <- data
variable <- "Box.Cox.Close"
y.lab <- paste0("Box-Cox $(\\lambda = ", round(s.lambda, 2), ")$ ile Döviz Kuru (TL/USD)")
variable.name <- paste0("Box-Cox Transformasyonu ile Döviz Kuru (TL/USD)")
ggplot(temp) +
geom_line(aes(x = Date, y = temp[ , variable], colour = "Variable"), linetype = 1, size = 1) +
xlab("Zaman (Gün)") + ylab(latex2exp::TeX(y.lab)) +
# labs(title = "Başlık") + ## Grafik için isterseniz başlık eklenebilir.
scale_x_date(date_breaks = "1 year", date_labels = "%Y") +
scale_colour_manual(name = "", labels = c(variable.name), values = c("Variable" = "darkblue")) +
theme_grey() +
theme(legend.position = "top")